Questions tagged «powershell»

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

8
重命名Windows目录中所有文件的简便方法
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 是否有一种简单的方法可以重命名目录中的所有文件?PowerShell是可行的方式吗? 我想从这里开始: c:\family_pics\ img123.jpg img124.jpg 对此: c:\family_pics\ family_pics_1.jpg family_pics_2.jpg 理想情况下,我想在目录上运行一个脚本,该脚本将在保留扩展名的同时根据当前目录的名称重命名所有文件,并以递归方式遍历目录树。


1
如何使SCCM识别Powershell脚本完成中的返回码?
我正在使用SCCM 2012应用程序部署来安装软件。特定的安装类型是脚本安装程序,因为SCCM始终因exe验证错误而失败。该脚本是powershell,即使由SCCM执行,该脚本也可以成功安装该软件。 问题在于SCCM仅从脚本的完成中看到0的返回。我已经尝试了write-host,,return和write-output,其中只有一个包含用于软重启的代码的订单项。由于应用执行日志捕获了0的返回值,因此SCCM似乎都不读取它们。 您如何从Powershell输出返回码,以便SCCM可以解释它们?

3
启用证书注册策略并使用PowerShell请求证书
现在,我正在执行以下操作以从CEP服务器请求证书: 打开gpedit.msc 在“计算机配置”>“ Windows设置”>“安全设置”>“公钥策略”下,双击“证书服务客户端-证书注册策略” 启用 输入CEP URI 切换到用户名/密码验证 验证(提供凭据) 打开MMC,然后导入“证书”管理单元 转到证书>个人 右键单击>请求新证书 输入“更多信息”(CN,DNS名称等) 提供信用 之后,我获得了CEP的证书;但是,这是手动执行的痛苦过程。在Server 2008(和2012)中,有什么方法可以自动执行此操作?我能找到的所有信息都告诉您如何安装CEP服务,以使服务器成为注册策略服务器(与实际请求新证书或在客户端启用它无关)。可以自动化吗? 似乎此过程在HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Cryptography下添加了许多数据。我可以手动添加(并欺骗GUID / ServiceID)吗?

3
在Powershell中使用名称空间
回答这个问题的时候想一想。 如何避免完全限定名称空间中的每种类型的需要? 这是真的,真的很乏味写System.Security.Cryptography.X509Certificates.X509Store的,而不是X509Store或[System.Security.Cryptography.X509Certificates.StoreName]::My代替[StoreName]::My。 在C#中,您有using指令... Powershell呢? 编辑1-适用于以下类型: $ns = "System.Security.Cryptography.X509Certificates" $store = New-Object "$ns.X509Store"(StoreName,StoreLocation) New-Object采用字符串文字作为类型定义,因此可以以编程方式构建。 编辑2-这适用于用作参数的枚举成员: $store = New-Object "$ns.X509Store"("My","LocalMachine") 其中“我的” [System.Security.Cryptography.X509Certificates.StoreName]::My和“本地机器”的位置[System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine。 如果将文字名称放在期望枚举成员的位置,则会自动将其转换为枚举成员。


1
使用PowerShell通过PuTTY更改了我的RHEL root密码,但是我不知道将密码更改为
基本上是标题。我的朋友为我提供了一个脚本,用于通过Powershell和PuTTY批量更改RHEL密码,但是当我尝试登录时,我输入的新密码不起作用。我认为问题是它不能逃避以下特殊字符之一:输入新密码,但我无法确定新密码是什么。 我使用的“新密码”与此类似:a1b2c3d” 4e5f6g7 我试图将安全字符串替换为常规字符串,或者使用telnet而不是SSH进行数据包捕获来确定确切发送的内容,但是到目前为止,这些都没有起作用。 System.Management.Automation.PSCredential -argumentlist "root",$newrootPassword $newrootPassword2 = Read-Host "Retype new root password" -AsSecureString $newrootCredential2 = new-object -typename System.Management.Automation.PSCredential -argumentlist "root",$newrootPassword2 putty.exe -ssh -pw $oldrootCredential.GetNetworkCredential().Password root@$_ echo y | plink.exe -ssh -v -pw $oldrootCredential.GetNetworkCredential().Password root@$_ "echo root:'$newrootPassword' | chpasswd" 2>&1 我希望新密码为a1b2c3d“ 4e5f6g7;但是,登录后无法使用。

2
DSC与“常规”脚本相比有什么不同/更好?
我在ITPro.tv上观看了有关PowerShell期望状态配置DSC的视频。他们介绍了它,并有效地运行了脚本。但是,这也是他们第一次(真正)引入脚本,因此我没有理解DSC和常规脚本之间的区别。我以前做过一些常规的脚本编写工作,也许他们只是没有一个很好的例子。似乎常规脚本可以安装角色/功能并复制一些文件就可以了。与脚本相比,我没有看到DSC的好处。除了一台机器能够轮询某种变化外,从理论上讲它们在实践中没有涉及。 DSC与传统脚本相比有什么好处?例如“安装角色,复制文件”? 使用PowerShell,您可以连接到远程计算机并告诉它们执行操作,因此这并非DSC所独有。 使用DSC,似乎您正在进行某种编译以生成mof文件,然后在脚本执行后从外壳运行它,这似乎是不必要的步骤。 在MSDN概述读起来就像PowerShell的概述,我看不出与众不同之处。

1
PowerShell管道进入find.exe命令
只是好奇,为什么会这样?如果我运行: netstat -an | find "443" 进入命令提示符后,将显示“ 443”连接。如果我在PowerShell控制台或ISE中运行相同的命令,则会收到错误“ FIND:参数格式不正确”。netstat输出是否无法通过管道正确地找到在PS中? 注意:如果我运行netstat -an | findstr "443"或netstat -an | select-string "443"在PS中运行,则工作正常。

4
是否可以从Windows Server 2016 Nano上的powershell命令获取Windows版本?
我正在使用Windows Server 2016 nano的最新预览。 使用远程powershell会话,我通过通过Enter-PSSessionNET 连接到远程系统,然后尝试使用最常用的技术来检查Windows版本,因为没有完整的.Net框架。此外,Get-WmiObject cmdlet不可用。 我可以看到某些信息的唯一方法是使用此非powershell命令DISM: Dism /Online /Get-Feature 这给了我此输出以及已安装功能的列表: Deployment Image Servicing and Management tool Version: 10.0.10514.0 Image Version: 10.0.10514.0 Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.10514.0 从高于我的Windows 10桌面的10514值,我可以对内核构建有所了解,有趣的是Windows 10桌面具有相同的“ Microsoft-Windows-Foundation-Package”,但内核构建较低数。 是否有人发现了可以写的cmdlet或某些powershell函数或别名,它们将为我检测到我的powershell脚本在纳米服务器上以某种不太可能损坏的方式运行的事实,或者发现了任何命令实际打印出“ Windows Server 2016 Nano Server”? 更新:这更接近我想要的,但是有点hack: Get-Item -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' 更新2:不存在Get-WmiObject,并且在执行以下操作时,它仅报告内核版本: [System.Environment]::OSVersion.Version 上面将报告内部版本10514,而Windows 10客户端操作系统RTM目前报告10240,但是以上内容实际上是“内核内部版本”,而不是操作系统产品/版本/服务包级别。

3
是否可以创建通用配置文件以使用PowerShell安装Windows功能?
我目前正在尝试自动化运行Windows Server 2012 R2的VM的构建。目前的挑战是自动添加角色和功能。在角色和功能向导中,有一个选项可以导出可以在PowerShell中运行的XML配置文件。 但是,浏览完XML文件后,我可以看到它特定于运行它的服务器-它包含诸如“ ComputerName”之类的字段。 如果我想运行在许多VM上安装角色和功能的脚本怎么办?我需要一个通用的配置文件,而不是针对特定计算机的个性化配置文件。 有人对此事有意见吗?

3
PowerShell:带有åäö的Get-ADUser属性
我正在尝试使用Get-ADUser提取用户的选择集。用户属于名称包含非ASCII字符的公司,例如“Gåäördet”。不幸的是,我们必须使用company属性来完成此任务,我们还需要它通过脚本工作。 以下内容在交互式会话中非常有用,但是在脚本中执行时不返回任何数据: $Company = "Gåäördet" Get-ADUser -Filter "company -eq '$Company'" 我找到了可行的解决方法,但不够可靠(选择错误对象的风险): # Work-around 1: $Company = "Gaaordet" # Replace åäö with aao in the variable Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why? ...要么... # Work-around 2: $Company = "G...rdets" # Use regex for åäö Get-ADUser …

2
在PowerShell中访问已映射的网络驱动器
我正在VMWare Workstation中运行Windows Server 2012安装。我已启用共享文件夹,因此驱动器Z:已映射到\\vmware-host。我可以在资源管理器中正确访问此驱动器(可以Z:在“普通”`cmd内部访问),并且可以正确打开文件。 我打开PowerShell并尝试这样做cd Z:,但出现以下错误: cd:找不到路径“ Z:\”,因为它不存在。 为什么PowerShell无法找到已经映射的网络驱动器? 我用Google搜索了一下,找到了New-PSDrive命令。我执行以下操作: New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\' 但我仍然收到与上述相同的错误。我需要做什么才能访问PowerShell中的VMWare共享文件夹。

1
如何使用Powershell修改现有的计划任务?
我正在研究一些使用Powershell来更新执行各种应用程序的现有计划任务的发布自动化脚本。在我的脚本中,我可以设置应用程序的“路径”和“工作目录”,但似乎没有将更改保存回任务。 function CreateOrUpdateTaskRunner { param ( [Parameter(Mandatory = $TRUE, Position = 1)][string]$PackageName, [Parameter(Mandatory = $TRUE, Position = 2)][Version]$Version, [Parameter(Mandatory = $TRUE, Position = 3)][string]$ReleaseDirectory ) $taskScheduler = New-Object -ComObject Schedule.Service $taskScheduler.Connect("localhost") $taskFolder = $taskScheduler.GetFolder('\') foreach ($task in $taskFolder.GetTasks(0)) { # Check each action to see if it references the current …


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.