[玩转系统] 使用 ISE 作为中央管理工具(ISE 配置文件的演变)第 1 部分
作者:精品下载站 日期:2024-12-14 07:11:57 浏览:14 分类:玩电脑
使用 ISE 作为中央管理工具(ISE 配置文件的演变)第 1 部分
使用 ISE 作为中央管理工具(ISE 配置文件的演变)第 1 部分
前言:本文提到的所有信息均基于ISE的profile文件,有关profile文件的更多信息请查看微软的说明
要快速生成 ISE 配置文件,您可以在 ISE 中使用以下代码
if (!(Test-Path -Path $PROFILE ))
{ New-Item -Type File -Path $PROFILE -Force }
您的个人文档文件夹中将生成一个新文件夹和 .ps1 文件。
就我个人而言,我已经使用这个配置文件有一段时间了,但是这些天它不断发展并且添加了很多功能。
我对这个文件所做的第一件事就是从我的个人资料中的 ISE Steroids 开始。看一下这个简单的配置文件:
更多信息链接
今年夏天,我再次开始使用 ISE Profile,以自动执行对服务器等的远程 powershell 访问。
直接看我的帖子LINK
1. 使用配置文件备份插件
#add ise menu backupprofil
$parentbackup = $psise.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add('Backup', $null, $null)
$parentbackup.Submenus.Add(' BackupPSProfile',{ Invoke-Expression "$env:HOMEPATH\Documents\WindowsPowerShell\Backup\profile-backup.ps1"}, $null) | Out-Null
仔细看看函数 add 及其三个参数 在我的示例中,最后两个参数是 $null 因为我不想要定义一个快捷方式。
添加此信息后,您在 ISE 中的菜单将得到扩展(如果直接执行,菜单结构将出现在菜单中)。
那么为什么我们要执行附加菜单 -> 我想使用配置文件备份我的完整配置文件路径,并且还具有此配置文件文件夹的版本,文件夹名称中包含日期。就我而言,targetbackup 是我的 onedrive 文件夹,它将上传到云端。
这个脚本看起来如何:
#path to profile file
$updatepath = 'C:\Users\ak\Documents\WindowsPowerShell'
#path to backupfolder
$backuppath= "C:\OneDrive\powershell-scripting\powershell_profile"
#get date and convert to string
$date=((Get-Date).ToString('yyyy-MM-dd-HH-mm-ss'))
#generate new folder with date in foldername
New-Item -Path ($backuppath+"\"+$date) -type directory -Force
#if folder not existing throw error
if( -not (Test-Path ($backuppath+"\"+$date)) )
{
Throw (Logwrite "error generating folder, please check folder")
}
#starting backup with robocopy
else {
$backuponedrive = "$backuppath"+"\"+"$date"
robocopy "$updatepath" "$backuponedrive" /mir
}
2.远程Powershell Azure AD
当然,其他脚本也遵循我的个人资料。现在我介绍一个通过远程powershell连接到Azure AD Powershell的脚本(还包括导入模块)
首先将菜单按钮添加到“RemotePowershell”
连接脚本:
#connect azure ad
Import-Module AzureAD -Verbose
Update-Module -Name AzureAD -Verbose
Get-Module -Name AzureAD
$MyCred = Get-Credential
Connect-AzureAD -Credential $MyCred
$user = ($MyCred.UserName).ToString()
#change ISE Editor title
$host.ui.RawUI.WindowTitle = "Remoteconnection to AzureAD with user: $user"
注意:ISE 的标题栏也是自定义的,并显示用于连接到 azure 广告的用户
3. 关闭远程 Powershell 会话
使用 Remotepowershell 完成所有工作后,您应该关闭与远程服务器的连接(干净关闭)。我还在“remotepowershell”中创建了一个菜单按钮
以下脚本位于按钮后面
#exit open powershell session
Get-PSSession | Where-Object {$_.State -eq "Opened"} | Remove-PSSession
$host.ui.RawUI.WindowTitle = "Windows Powershell ISE no connection"
如您所见,远程会话将被删除,并且标题栏将被自定义,以便每个人都可以看到没有活动的远程连接。
有多种方法可以结束远程 powershell 会话(此处有简短说明):
- Powershell 将会话连接到远程服务器/系统并在本地会话中导入模块(变量也仅在本地系统上定义)
- 第二种方法称为“隐式远程处理”,它直接在远程客户端/系统上执行 powershell 代码(因此,如果您导入模块,它将不会在本地导入)
在我的示例中,“Remove-PSSession”是结束 PSSession(第一个 ps 连接),“Exit-RemotePS”是结束隐式会话
退出-RemotePS:
$parentrps.Submenus.Add(' Exit-RemotePS',{ Invoke-Expression Exit-PSSession; $host.ui.RawUI.WindowTitle = "Windows Powershell ISE no remote connection" }, $null) | Out-Null
通过使用“invoke-expression”,可以在远程计算机或服务器上执行 powershell 代码。 (缺点:需要winrs)。也可以使用“Invoke-Command”,但如果这样做,则需要考虑更多参数。
查看此链接:Invoke-Expression VS Invoke-Command
最后是我的完整配置文件:
#startup ISE-Steroids
Set-Location C:\temp
if ($psISE)
{
Start-Steroids
#Clear-Host
Write-Host 'ISE-Steriods started!' -ForegroundColor Green
#check for updates and install
Update-Module -Name isesteroids
}
#add ise menu remote powershell
$parentrps = $psise.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add('RemotePowershell', $null, $null)
$parentrps.Submenus.Add(' Open-ExchangeOnline',{ Invoke-Expression "$env:HOMEPATH\Documents\WindowsPowerShell\RemotePS\ExchangeOnline.ps1"}, $null) | Out-Null
$parentrps.Submenus.Add(' Azure-ADConnect',{ Invoke-Expression "$env:HOMEPATH\Documents\WindowsPowerShell\RemotePS\azure-ad-connect.ps1"}, $null) | Out-Null
$parentrps.Submenus.Add(' Remove-PSSession',{ Invoke-Expression "$env:HOMEPATH\Documents\WindowsPowerShell\RemotePS\ExchangeOnline-exit.ps1"}, $null) | Out-Null
$parentrps.Submenus.Add(' Exit-RemotePS',{ Invoke-Expression Exit-PSSession; $host.ui.RawUI.WindowTitle = "Windows Powershell ISE no remote connection" }, $null) | Out-Null
#add ise menu backupprofil
$parentbackup = $psise.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add('Backup', $null, $null)
$parentbackup.Submenus.Add(' BackupPSProfile',{ Invoke-Expression "$env:HOMEPATH\Documents\WindowsPowerShell\Backup\profile-backup.ps1"}, $null) | Out-Null
这是第一部分。
第二部分将描述函数日志记录和 certman,并将很快发布。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag