Questions tagged «powershell»

Microsoft的交互式外壳程序,脚本和编程语言以及周围环境。PowerShell通常由管理Microsoft软件(包括Windows,Exchange,SharePoint和云服务Azure和Office 365)的系统管理员使用,默认情况下Windows附带了PowerShell,它接管了以前的语言(例如VB脚本)。

7
Powershell:如何查询pwdLastSet并使其有意义?
我需要获取Active Directory安全组中一组帐户的最新密码更改,我觉得这是PowerShell应该擅长的事情。 现在,我已经在如何从正在查看的AD帐户读取pwdLastSet属性上了。甚至运行像这样的简单的东西: [adsi] "LDAP://cn=user1,ou=Staff,ou=User Accounts,dc=ramalamadingdong,dc=net" | Format-List * 给出pwdLastSet的结果,如下所示: pwdLastSet : {System.__ComObject} 我觉得我走错路了,那么什么是查询然后格式化pwdLastSet属性的输出(该值基于Windows Epoch而不是人类可读的)的最佳方式是什么?

5
安装了什么版本的Windows管理框架?
如何检查以查看安装了哪个版本的Windows Management Framework(WMF)?看起来应该很简单,但是我不能。甚至对一系列不同版本的问题进行谷歌搜索也几乎没有。 它不在appwiz.cpl中,regedit在“ Windows Management Framework”中找不到任何内容,并且在“ wmf”中找不到太多无关紧要的内容 我只是想知道如何以任何合理的方式检查它。是否有注册表项?有没有我可以检查的文件?有什么吗? 我能找到的最接近的东西是关于serverfault:检测Windows Management Framework版本的方法。这个问题最初是一样的,但是似乎要求在GPO中使用一种特定的检查方式。也许这就是为什么它没有答案的原因。 我想检查多台计算机。我首先使用的是Windows Server 2008 R2 Standard。也将有其他Windows Server操作系统。 如果您知道任何标签比我的标签更有效,请发表评论或重新标签;我找不到任何能很好地描述这个问题的东西。 更新:有些人似乎认为“ $PSVersionTable”(和/或它的各种属性)是答案。最近我终于意识到这是一个PowerShell变量(也许“ PS”前缀应该已经为我提供了,但是没有),并试图进行更深入的研究。这导致了另一个问题:PowerShell的$ PSVersionTable的内容代表什么?。 Update2:基于我现在收集的所有信息以及我更好的理解,我可以肯定PowerShell的内置变量$PSVersionTable.PSVersion在技​​术上并不是解决问题的办法,而是经常(有时?总是?不确定)。相同,因为版本可能并存。该$PSVersionTable.WSManStackVersion变量可能是我想要的,但是该属性的官方简短描述将其表示为WS-Management堆栈。WS-Management堆栈与WMF是否相同?谷歌搜索表明它们密切相关,但是我不确定答案是否定的。

3
删除Active Directory后Windows Server 2012 GUI丢失
对不起,但我仍然无法解决我在这里面临的问题。我从服务器管理器中删除了AD功能,重新启动后,我的服务器2012 gui不再存在。只有命令提示符要处理。我试图根据我发现的线程启用back gui。我做了SConfig,但是没有12号选项来还原gui。我尝试运行Powershell,但它指出“ Powershell无法识别为内部或外部...”。我将路径更改为c:\ windows \ system32 \ windowspowershell \ v1.0,并尝试运行powershell只是为了找到相同的错误消息。那么,如何才能启用服务器2012的GUI功能?

8
将Powershell脚本与非Windows工作流程集成的方法?
我喜欢早晨新机器的气味。 我正在自动化一个机器创建工作流程,该工作流程涉及整个基础架构中的多个独立系统,其中一些系统涉及Solaris主机上15年之久的perl脚本,PXE引导Linux系统以及Windows Server 2008上的Powershell。 我可以编写各个部分的脚本,并且将Linux和Unix自动化集成在一起非常简单,但是我对如何可靠地将Powershell脚本与其余过程结合在一起感到困惑。 我希望该过程是在Linux主机上开始的,因为我以为它会以驻留在Apache服务器上的Web应用程序的形式结束,但是如果它需要在Windows上开始,那么我很犹豫。 理想情况下,我希望psexec可以使Linux在Windows上运行,但是Cygwin似乎在朝着这个方向做出了回答,尽管我很欣赏他们付出的所有辛勤劳动,但从来没有感觉到这种错误,如果你明白我的意思。它非常适合台式机并提供许多功能,但是我觉得Windows服务器应被视为Windows服务器,而不是混混的Unix计算机(顺便说一句,我也反对OSX服务器,它们实际上是 Unix) 。无论如何,除非这是最后一个也是唯一的选择,否则我不想与Cygwin一起使用。 因此,我想问的是,是否有一种方法可以在Linux的Windows计算机上执行作业。没有Cygwin。我乐于接受各种想法和建议,包括“白痴,每个人都使用Cygwin,所以请认真对待并加以处理”。提前致谢!

1
将标准错误重定向到PowerShell中的变量
我想编写一个dcdiag测试脚本,以在发现任何错误时提醒我。我以为我可以通过以下方式在PowerShell中执行此操作... $test = dcdiag 2>$err 目前,我没有dcdiag的任何错误,因此无法直接进行测试,但是我编写了另一个PowerShell脚本以引发异常,希望可以使用该脚本测试此方法。使用上述方法无法使用,因此我选择了: try { $test = dcdiag } catch { $err = $_.Exception.Message } 它适用于我的测试用例,但是我不知道这是否会从dcdiag中获取标准错误。 如果要与dcdiag一起使用,如何最好地实现将标准错误重定向到PowerShell中的变量?
16 powershell 

13
您最喜欢用于系统管理的Powershell命令或脚本是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您最重要的Powershell命令是什么?让我们列出并投票选出最好的!
16 powershell 


3
如何从以前的会话中搜索Powershell命令历史记录
我将当前的Windows 10与Powershell 5.1一起使用。通常,我想查找过去使用过的命令来修改和/或重新运行它们。不可避免地,我要查找的命令在以前的或不同的PowerShell窗口/会话中运行。 当我敲↑键时,我可以浏览来自许多会话的许多命令,但是当我尝试使用进行搜索时Get-History | Where-Object {$_.CommandLine -Like "*docker cp*"},没有任何结果。基本故障排除显示,Get-History以前的会话没有任何显示,如下所示: C:\Users\Me> Get-History Id CommandLine -- ----------- 1 Get-History | Where-Object {$_.CommandLine -Like "*docker cp*"} 如何搜索↑密钥使用Get-History或其他Cmdlet 提供的先前命令?

3
使用保存的ps1文件启动远程PowerShell会话
我正在尝试创建几个文件,可以将其保存在本地桌面上以启动PowerShell会话。 Windows Server 2008和Windows Server 2012都是服务器核心安装。 当前,我可以打开Powershell并键入: Enter-PSSession -computername Win2012SrvCore -credential administrator 使用此工具,我可以连接并运行命令,一切都很好。 我试图做的是: 创建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 创建Win2012SrvCore2.ps1带有以下内容的文件: PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator 每个ps1文件都会快速启动和关闭,并带有一些我看不懂的红色文本。 我试图添加PAUSE到每个脚本,但这似乎并没有阻止窗口关闭。 我想做的是创建可以双击并打开Powershell提示符的脚本,类似于保存的RDP会话。 我已将ps1文件配置为执行: C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe 任何帮助将不胜感激。

1
在Server 2012 Core中使用Powershell解压缩文件
我需要使用powershell解压缩文件。我见过每个人的典型方法是使用脚本自动执行shell。 $shellApplication = new-object -com shell.application $zipPackage = $shellApplication.NameSpace($zipfilename) $destinationFolder = $shellApplication.NameSpace($destination) $destinationFolder.CopyHere($zipPackage.Items()) 这对我来说不起作用,因为Server Core没有外壳,因此没有一个可以自动化。这给出了E_FAIL COM错误。 Powershell似乎无法单独完成它,如果我参加了第三届聚会,我必须想办法首先编写脚本将实用程序安装到服务器上。我最喜欢使用7-Zip,但似乎无法编写下载和安装脚本。Sourceforge不断吐痰我回HTML文件。 如何在Server 2012 Core中完全编写脚本来解压缩zip文件?

1
为什么在PowerShell中MacTripleDes算法输出不稳定?
我正在使用Powershell中的几种不同算法检查文件哈希。当我使用MacTripleDes时,我总是得到不同的哈希值。所有其他字符(例如SHA256或MD5)始终会给出可靠的答案。您也许可以在自己的计算机上复制问题: "this is a test" | out-file test.txt get-filehash test.txt -algorithm sha256 get-filehash test.txt -algorithm sha256 get-filehash test.txt -algorithm mactripledes get-filehash test.txt -algorithm mactripledes 对于前两个哈希,我得到了相同的哈希值,但是对于后两个哈希,我得到了不同的值。MacTripleDes是否应该以不同的方式使用? Algorithm Hash Path --------- ---- ---- SHA256 3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51 C:\temp\test.txt SHA256 3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51 C:\temp\test.txt MACTRIPLEDES 904D74A529C7A739 C:\temp\test.txt MACTRIPLEDES AF720778A2C878A2 C:\temp\test.txt
14 powershell  hash 

1
将defaultAuthenticationType与PowerShell Web访问结合使用
使用PowerShell Web访问,可以选择身份验证类型。默认情况下,它使用的值为Default,最终为Negotiate。我设置了CredSSP,以允许使用CredSSP登录PSWA服务器本身,以便从会话内部进行网络身份验证(避免出现双跳问题,而无需在整个网络上委派凭据)。 无论如何,我希望CredSSP成为登录页面上的默认选项。 在IIS中查看PSWA Web应用程序的配置选项时,可以设置多个值以覆盖默认值。 其中一个称为defaultAuthenticationType,string但设置为0。 这似乎是正确的设置,但我无法使其正常工作。 如果我检查登录网页,则可以看到选择框具有以下值: 0 Default 1 Basic 2 Negotiate 4 CredSSP 5 Digest 6 Kerberos 3 不见了。 JosefZ发现3是NegotiateWithImplicitCredential根据该网页,但在Windows PowerShell上5.1.15063.966对我说,名称/值从枚举失踪。 如果设置defaultAuthenticationType为数字,则网页默认为新选项: 7 Admin Specified 我尝试了3和4,但都没有一个。使用Kerberos登录,不使用CredSSP。 如果我手动选择CredSSP,它将按预期工作。 如果我将defaultAuthentcationType字符串设置为CredSSP,则不会Admin Specified显示任何选项,并且它将Default再次默认设置为,并且仍使用Kerberos身份验证。 有人能成功设置吗?Web结果一直非常缺乏。

2
Powershell相当于Bash的流程替代
Bash具有<(..)流程替代功能。什么是Powershell的等效项? 我知道有$(...),但是它返回一个字符串,而<(..)返回一个外部命令可以读取的文件,这正是它所期望的。 我也不是在寻找基于管道的解决方案,而是可以在命令行中间粘贴一些东西。
14 powershell 

4
以管理员身份运行远程Powershell
在深入探讨这个问题之前,我发现了其他几个看起来与我相似的问题,但是它们并不能解决我的问题。这里是它们的链接: 远程运行调用“以管理员身份运行”的脚本 /programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell 现在开始讨论问题:我需要通过Powershell在远程计算机上运行Windows Update脚本。如果我通过mstsc远程访问计算机,请以管理员身份运行Powershell并运行Windows Update脚本,那么它将正常工作。如果我通过mstsc远程访问计算机,运行Powershell而不选择以管理员身份运行,然后运行脚本,则我将在这条线上收到很多错误:“异常调用“ Download”,参数为“ 0”:”来自HRESULT的异常:0x80240044“” 仅当我在没有管理员权限的情况下运行它时,才会发生这种情况。 我正在运行的脚本是这样的:http : //www.ehow.com/how_8724332_use-powershell-run-windows-updates.html 现在,当我使用Enter-PSSession远程访问计算机并尝试运行脚本时,我得到了错误,但是它们有些不同。它们沿这条线:“使用“ 0”参数调用“ CreateUpdateDownloader”的异常:“访问被拒绝。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))“” 对于可能导致此问题的原因,我持开放态度,但我认为我已经解决了。我相信Powershell会话需要以提升的特权运行。我知道如何在通过mstsc进行远程处理时执行此操作,但是我一直无法找到通过Enter-PSSession执行此操作的方法。我有Googled和Googled,但没有找到任何东西。如果有人可以帮助阐明这一点,将不胜感激。

4
Powershell仅从目录删除文件
我正在尝试删除D:\ MyTemp文件夹中的所有文件(但不是目录),我尝试过: Remove-Item "D:\MyTemp" Remove-Item "D:\MyTemp\*" 但是,当我检查时,所有文件仍然存在。 我想念什么?
14 powershell 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.