Articles of PowerShell

使用保存的ps1文件启动远程PowerShell会话

我正在尝试创build一些文件,以保存在本地桌面上来启动PowerShell会话。 Windows Server 2008和Windows Server 2012都是服务器核心安装。 目前,我可以打开Powershell并键入: Enter-PSSession -computername Win2012SrvCore -credential administrator 使用这个,我可以连接和运行命令,一切都很好。 我试图做的是: 使用以下命令创build名为Win2012SrvCore1.ps1文件: $passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd $session = new-pssession -computername Win2012SrvCore -credential $cred 使用以下命令创build名为Win2012SrvCore2.ps1文件: PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator 每个ps1文件将快速启动并closures一些我无法阅读的红色文本。 我试图添加PAUSE到每个脚本,但似乎并没有停止closures窗口。 我想要做的是创build脚本,我可以双击并打开到PowerShell提示,类似于保存的RDP会话。 我configuration了ps1文件来执行: C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe 任何帮助将不胜感激。

Powershell – 在一个表中合并结果

我是PowerShell新手。 我正在尝试创build一个显示即将到期的AD帐户的报告。 报告应该包括用户名,AccountExpirationDate和经理。 到目前为止,我有以下几点: $users = Search-ADAccount -AccountExpiring -TimeSpan "7" | Select-Object Name,AccountExpirationDate | Sort-Object AccountExpirationDate $manager = Search-ADAccount -AccountExpiring -TimeSpan "7" | Get-aduser -Properties Manager | Select-Object @{n="ManagerName";e={(Get-ADUser -Identity $_.Manager -Properties displayName).DisplayName}} 无论如何,我可以将结果合并到一张表中吗?

安装 – 导入PFX证书分开本地帐户的个人存储 – 自动

我一直在围绕自动化的方式来执行这个任务: 我们为客户部署Windows Server 2008 R2映像。 我们使用PowerShell(版本2)部署我们的专有软件,并在发货之前对系统进行各种其他更改。 此PowerShell进程在本地pipe理员帐户下运行,直到完成并禁用本地pipe理员帐户。 现在,对于这个问题 – 我试图将一个.PFX客户端证书安装到一个单独用户的CurrentUser \ My证书存储区。 我们称这个用户为“SQL”。 现在,证书已经在LocalMachine \ My证书存储下安装,但我们的开发团队中有一个担心这个职位,并希望复制原始设置。 现在,我知道如何通过在部署脚本中添加一个重新引导步骤来完成这个操作,并在“SQL”用户下执行这个操作,但是我想避免这种情况,因为看起来必须有一种方法来获取这是在另一个帐户下完成的。 以下是我们现在用于将证书安装到LocalMachine \ My商店的基本代码。 假设$ certPath是.pfx的path,$ pfxPass是.pfx的密码。 function Import-PfxCertificate { param([string] $certPath, [string]$pfxPass) $pfx = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $pfx.Import([string]$certPath, [string]$pfxPass, "Exportable,PersistKeySet") $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "LocalMachine") $store.open("MaxAllowed") $store.add($pfx) $store.close() }

如何使用PowerShell在IIS中创build和安装域签名证书?

在我的环境中,我们在IIS(Windows 2008 R2和Windows 2012)中托pipe了大量网站和WCF Web服务。 我们正在这些网站上启用HTTPS。 这个过程如下: 使用我们的networking中可用的Active Directory证书颁发机构,在IIS中创build一个已签名的*.environment.domain证书。 通过更改站点绑定并应用生成的证书,在站点上启用HTTPS。 鉴于机器和网站的数量,我们希望自动执行所需的操作。 我可以在部署过程中将正确的站点绑定应用于站点,但是我还没有find在IIS中创build和安装域签名证书的解决scheme。 我已经find了如何手动执行此操作,使用IIS中的“服务器证书”图标,并在那里调用“创build域证书”操作。 我可以提供正确的凭据,并且当我指定证书颁发机构时,我可以创build所需的证书。 我还发现,您可以查看使用cert:\ PowerShell驱动器安装在机器上的cert:\ : cert:\LocalMachine\My> Get-ChildItem 我发现在Windows Server 2012上有一个New-SelfSignedCertificate PowerShell CmdLet可用。 不过,我似乎无法find所需的PowerShell突击队在Windwos Server 2008 R2上结合所有这些操作。 如何使用PowerShell在IIS中创build和安装域签名的SSL证书?

如何获得Microsoft MSDN订户下载的静态下载链接?

我需要能够直接从Power Shell下载MSDN ISO文件,因此我想知道我该怎么做? 我可以查看下载网站https://msdn.microsoft.com/subscriptions/securedownloads/然而,这些下载需要身份validation….我不知道如何通过权力壳进行身份validation,我可以find没有适用的cmdlet。 这将是很好的只是我的实际文件的静态下载链接。 有谁知道如何做到这一点? 此外,如果任何人都可以提供已经完成的cmdlet(我已经search到没有运气),这将是有益的感谢您的帮助!

是否需要启用Windows防火墙才能在Windows 2008/2012服务器上启用PowerShell远程处理?

是否需要启用Windows防火墙才能在Windows 2008/2012服务器上启用PowerShell远程处理? 也就是说,如果2008/2008 R2 / 2012 R2服务器上的Windows防火墙closures,可以启用PowerShell远程处理?

使用Powershell将Windows Server防火墙地址列表从一个规则复制到另一个规则

我有点卡在Windows服务器的防火墙cmdlet的文档。 我试图从远程和本地ips从一个规则复制到另一个地址列表。 我可以使用列表 Get-NetFirewallRule -DisplayName "MSSQL" | Get-NetFirewallAddressFilter 现在我试图设置这个另一个规则是这样的: Set-NetFirewallAddressFilter -DisplayName "FTP Server (FTP Traffic-In)" | Get-NetFirewallRule -DisplayName "MSSQL" | Get-NetFirewallAddressFilter 这显然是错误的,因为我马上得到一个错误,说Set-NetFirewallAddressFilter没有参数'Displayname' 当我使用Set-NetFirewallRule代替它时,但是我不能使用一个完整的对象,而是单独使用本地和远程地址。 你能帮忙吗? 更新 我现在试着运行这样的东西: Set-NetFirewallRule -DisplayName "Test" -RemoteAddress | Get-NetFirewallRule -DisplayName "MSSQL" | Get-NetFirewallAddressFilter | ft Remote 这是行不通的:Set-NetFirewallRule:地址是无效的。 地址可以被指定为IP地址,范围或子网。 再次卡住…

什么是PowerShell命令将服务器添加到RDS的服务器池

我们有一个RDS Serverfarm包含一个AD服务器和两个RDS服务器。 AD是Server 2012 R2,RDS服务器是Server 2016。 在通过Teamviewer重新启动服务器后login到RDS服务器并打开服务器pipe理器来pipe理连接时,我总是必须将服务器添加到服务器池以查看连接。 这有点烦人 有没有我可以用来设置我的服务器池的PowerShell cmdlet? 谢谢!

如何使PowerShell在执行命令后添加新行?

是否有可能以某种方式configurationPowerShell执行命令后添加一个新行? 我使用的IronPython和其他控制台程序并不总是用\ n来完成它的输出,因为PowerShell提示符会出现在行的中间。 这是我得到的: PS D:\Test> ipy test.py Traceback (most recent call last): File "test.py", line 1, in <module> RuntimeError: *** ERROR ***PS D:\Test\bin> <———- MIDDLE OF LINE PROMPT 这是我想要的: PS D:\Test> ipy test.py Traceback (most recent call last): File "test.py", line 1, in <module> RuntimeError: *** ERROR *** PS D:\Test\bin> <———- NEW LINE PROMPT

使用ROBOCOPY来移动数据,而不是复制它

我有以下PowerShell脚本,它执行一些robocopy命令: ROBOCOPY.exe $q3 $q4 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD ROBOCOPY.exe $q2 $q3 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD ROBOCOPY.exe $q1 $q2 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD ROBOCOPY.exe $src $q1 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD 这工作正常,但它需要很长的时间,我想知道,如果有一种方法,我可以让robocopy做一个“剪切+粘贴”而不是“复制+粘贴”,所以窗口将移动NTFS指针该文件,而不是实际上复制每个文件的所有位?