Articles of PowerShell

Powershell比cygwin / unix-shell有什么优势?

我意识到的明显差异是能够连接到某些MS产品,如Exchange。 但是对于不需要pipe理这些产品的人来说,Powershell有什么优势呢? 学习Powershell的原因是什么(假设我用bash和cygwinstream畅)?

简单的方法来重命名在Windows目录中的所有文件

有没有简单的方法来重命名目录中的所有文件? 是PowerShell的路要走吗? 我想从这里走: c:\family_pics\ img123.jpg img124.jpg 对此: c:\family_pics\ family_pics_1.jpg family_pics_2.jpg 理想情况下,我想在一个目录上运行一个脚本,它将根据当前目录的名称重命名所有文件,同时保留扩展名,并recursion地遍历目录树。

以pipe理员身份运行远程PowerShell

在深入探讨这个问题之前,我发现了其他一些类似于我的问题,但是他们还没有解决我的问题。 这里是他们的链接: 远程运行一个脚本调用“以pipe理员身份运行” https://stackoverflow.com/questions/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell 现在问题:我需要通过Powershell在远程机器上运行Windows Update脚本。 如果我通过mstsc远程访问机器,以pipe理员身份运行Powershell并运行Windows Update脚本,它工作正常。 如果我通过mstsc远程进入机器,运行Powershell而没有select以pipe理员身份运行,并运行脚本,我会得到一堆错误沿着这一行:“exception调用”下载“与”0“参数:来自HRESULT的exception:0x80240044“” 这只会发生,如果我没有pipe理员权限运行它。 我正在运行的脚本是这样的: http : //www.ehow.com/how_8724332_use-powershell-run-windows-updates.html 现在,当我使用Enter-PSSession远程访问机器并尝试运行脚本时,出现错误,但是它们有点不同。 他们沿着这条线:“exception调用”0“参数的CreateUpdateDownloader:”访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED))“” 我很乐于提出可能导致这个问题的build议,但我想我已经明白了。 我相信Powershell会话需要使用提升的权限运行。 我知道如何在通过mstsc进行远程处理时执行此操作,但是我一直无法通过Enter-PSSessionfind方法。 我已经谷歌和谷歌search,但没有发现任何东西。 如果有人可以帮助解决这个问题,那将不胜感激。

使用winrm和Microsoft.Update.Session远程修补服务器时出现问题

我有一个与Windows 2003,2008和2008r2服务器的networking。 我有一个PowerShell脚本,我写了使用“Microsoft.Update”COM对象修补本地机器。 (类似于Windows Update PowerShell Remoting 。)我的脚本在本地非常有效,但是我想远程使用它的function,因为我有相当数量的服务器来pipe理。 在这种情况下,这种情况就会下降(类似于另一个没有解决的情况)。 然而,我却能够把失败的范围缩小到特定class级的两种方法。 (New-Object -ComObject "Microsoft.Update.Session").CreateUpdateDownloader() (New-Object -ComObject "Microsoft.Update.Session").CreateUpdateInstaller() 如果您以pipe理员身份在本地运行这些PowerShell,则不会有任何问题。 如果您尝试使用invoke-command(或enter-session或winrs),则会出现以下错误。 (这是使用本地主机进行testing,但任何主机都可以,我也尝试了不同的authentication方法,例如:credssp和Kerberos。 PS C:\> Invoke-Command -ComputerName localhost -ScriptBlock { (New-Object -ComObject "microsoft.update.session").createUpdateDownloader()} Exception calling "CreateUpdateDownloader" with "0" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation 我曾经在博客中看到过这个bug,但没有对这个声明做任何备份。 […]

我可以更改WSUS中的更新说明吗?

在每个微软补丁的日子里,我有很多新的更新,我想批准给我的客户。 但不是“批准所有更新并继续”,而是收集其知识库文章中的每个更新的信息,以决定是否这是对我们而言的重要更新。 这是一个非常繁琐的任务,因为我必须在我的客户端浏览器中input相应的KB编号,然后等待网页加载。 我想知道为什么微软不使用WSUS控制面板上的更新说明框来显示真正有用的详细信息。 相反,我所有的更新都是这样的: 安装此更新可以解决Windows中的问题。 有关此更新中包含的问题的完整列表,请参阅相关的Microsoft知识库文章以获取更多信息。 安装此项目后,您可能需要重新启动计算机。 我开始考虑一下Powershell脚本,为我添加了必要的信息。 但是我第一步失败了,那就是手动更新描述: PS C:\ Users \ Administrator> $ wsus = Get-WsusServer PS C:\ Users \ Administrator> $ update = $ wsus.SearchUpdates('KB3013791') PS C:\ Users \ Administrator> $ update [0] .Description 安装此更新可以解决Windows中的问题。 有关此更新中包含的问题的完整列表,请参阅相关的Microsoft知识库文章以获取更多信息。 安装此项目后,您可能需要重新启动计算机。 PS C:\ Users \ Administrator> $ update [0] .Description ='“0x00000133”当Windows 8.1或Windows Server 2012 R2中出现故障硬件时, […]

Set-RDSessionCollectionConfiguration连接代理连接到本地主机

我正在Windows 8机器上的PowerShell控制台上运行以下命令,尝试configurationServer 2012 R2 RDS连接代理: Import-Module RemoteDesktop Set-RDSessionCollectionConfiguration -CollectionName "Example" -CustomRdpProperty "gatewayhostname:s:rdp.example.com" -ConnectionBroker "ep-ts01.ad.example.com" 但是,即使我指定要使用哪个连接代理,它始终会尝试连接到localhost : New-PSSession:[localhost]连接到远程服务器localhost失败,并显示以下错误消息:客户端无法连接到请求中指定的目标。 validation目的地上的服务是否正在接受请求。 请查阅在目标上运行的WS-Management服务的日志和文档,最常见的是IIS或WinRM。 如果目标是WinRM服务,请在目标上运行以下命令来分析和configurationWinRM服务:“winrm quickconfig”。 有关更多信息,请参阅about_Remote_Troubleshooting帮助主题。 但是, Get-RDSessionCollection -ConnectionBroker ep-ts01.ad.example.com工作得很好,并返回集合。 如果我执行Enter-PSSession ep-ts01.ad.example.com并从那里运行,那也是一样的。 但是,如果我从服务器本身运行命令(即不是远程),它工作得很好。 我该如何解决这个问题?

无需映射驱动器号(PowerShell)访问networking共享

我想访问远程SMBnetworking共享\\SHARE-HOST\而不映射驱动器号。 我可以在Windows中通过在资源pipe理器中键入\\SHARE-HOST\Share_folder\来手动执行此操作。 如果我想以编程方式执行,我必须使用net use命令。 这要求我指定一个字母。

如何使用PowerShell在Active Directory中查找孤立的计算机对象?

如何查找Active Directory域中使用PowerShell在x天内处于非活动状态的所有计算机帐户? 请注意,我确实知道如何做到这一点。 这是一个自我回答的问题,只是为了获得知识。 如果有其他人有更好的方法,随时张贴!

命令行 – 切换到pipe理员模式

是否可以在命令行中从正常模式切换到pipe理员模式? 我不想通过右击并select“以pipe理员身份运行”来打开命令行。 谢谢

Exchange 2010 Powershell命令检查系统中是否存在电子邮件地址

我正在查找一个Exchange 2010命令,它将执行以下操作: 给定一个电子邮件地址(完全限定域名和全部)检查电子邮件地址是否与系统中的某个邮箱或组相关联; (理想情况下)显示哪个实体拥有该电子邮件地址 这将对我检查我的迁移非常有帮助,并确保我们所有的别名都已正确移动。