有没有办法使用PowerShell列出恢复库中列出的所有VMS? 我一直在网上search,只看到命令来pipe理虚拟机,但没有列出它们。 我试图列出所有受保护的VMS和上次备份date。 如果它是可能的。 提前致谢 :)
我们正在使用以下软件: PowerShell v1 Windows 7专业版 当我在PowerShell中的远程计算机上运行以下所有工作正常: (显示来自共享文件夹的文件) Get-ChildItem "\\<NAME OF COMPUTER WHICH HOSTS THE NETWORK SHARE>\ourNetworkShare" 但是当我从本地计算机运行以下内容时: Invoke-Command -ComputerName <REMOTE COMPUTERNAME> -ScriptBlock { Get-ChildItem '\\<NAME OF COMPUTER WHICH HOSTS THE NETWORK SHARE>\ourNetworkShare' } -credential $myCredential 我得到以下错误: Cannot find path '\\<NAME OF COMPUTER WHICH HOSTS THE NETWORK SHARE>\ourNetworkShare' because it does not exist. + CategoryInfo: ObjectNotFound: […]
我已经添加了一个用户到azure vm,并将用户添加到“远程桌面用户”组中,他们可以使用rdp访问服务器,但不能像主用户那样通过powershell访问服务器。 我怎样才能让用户也通过PowerShell来访问服务器。
我正在尝试从connectionstrings.config文件中获取信息并将其填充到CSV中。 到目前为止,我有以下脚本: $Filename = "C:\new.config" [xml]$config = Get-Content $fileName $CSCount = $config.connectionStrings.add.connectionString.count [array]$CS = $config.connectionStrings.add.connectionString $CScount = $CS.count $CSCount for($i=0; $i -lt $CScount; $i++) { New-Variable -Name "CS$i" -Value $CS[$i] New-Variable -Name "Password$i" -value ($CS[$i].Split(';') | ConvertFrom-StringData).'Password' } $table=@" foreach ($C in $CSCount) { connectionstring[$i] } $Password[$i] "@ #export to a csv file $table | […]
我需要join公共和国内防火墙configuration文件激活的个人电脑。 如果我closures目标主机中的两个防火墙configuration文件,以下命令正常工作。 Add-Computer -ComputerName $targetHost-DomainName domain.com -Credential $Global:credentialObject -LocalCredential $targetHost\localAdmin -Restart 但在生产场景中,我需要通过使用域策略来打开特定的端口。 这个脚本的想法是从域中删除PC,并添加其他原因 那么,我需要在$ targetHost防火墙中打开哪些端口? 谢谢
我已经按照这里的说明在Windows上创build代码签名证书来签署PowerShell脚本 但它不工作,因为我得到这个错误: File C:\temp\script.ps1 cannot be loaded. A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. 我试图只是将创build的证书复制到我的用户和机器信任的发布者,没有运气。 Google给了我: https : //4sysops.com/archives/sign-your-powershell-scripts-to-increase-security/ 等等,但他们都需要安装Windows 10 SDK。 我只是试图在我的Server 2016 WSUS服务器上运行https://community.spiceworks.com/scripts/show/2998-adamj-clean-wsus?page=51而不会污染它,但是我可以“将需要PowerShell脚本的组策略更改为AllSigned。 帮帮我?
我需要编写一些例程任务来远程执行从serverA到多个主机,但其中有一些却无法执行脚本。 如果我执行这个: $cred = Get-Credential myUser Invoke-Command -ComputerName serverB -ScriptBlock{gci d:\} -Credential $cred 或这个: Test-WSMan -ComputerName ServerB -Credential $cred -Authentication Negotiate 我得到以下错误 [SeverB]连接到远程服务器ServerB失败,并显示以下错误消息:WinRM无法处理请求。 使用协商身份validation时发生错误代码0x80090322的以下错误:发生未知的安全错误。 可能的原因是: – 指定的用户名或密码无效。 -Kerberos用于没有authentication方法和用户名没有指定。 -Kerberos接受域用户名,但不接受本地用户名。 – 远程计算机名称和端口的服务主体名称(SPN)不存在。 – 客户端和远程计算机处于不同的域,两个域之间没有信任。 检查上述问题后,请尝试以下操作: – 检查与事件查看器相关的身份validation事件。 – 更改authentication方法; 将目标计算机添加到WinRM TrustedHostsconfiguration设置或使用HTTPS传输。 请注意,TrustedHosts列表中的计算机可能未经过身份validation。 – 有关WinRMconfiguration的更多信息,请运行以下命令:winrm help config。 有关更多信息,请参阅about_Remote_Troubleshooting帮助主题。 + CategoryInfo:OpenError:(serverB:String)[],PSRemotingTransportException + FullyQualifiedErrorId:-2144108387,PSSessionStateBroken 但是当我单独使用test-wsman时: Test-WSMan -ComputerName ServerB wsmid […]
我们有4个Hyper-V群集,并且为这些Hyper-V群集中的VM对象启动了一个脚本。 该脚本工作正常,但脚本只会启动第一个群集中的所有虚拟机,而不是下一个。 有没有什么方法可以让我们在多个集群上同时启动虚拟机。 $clusters = Get-Content "c:\temp\Clusters.txt" foreach ($clu in $clusters){ while($true) { write-host "Cluster VM resources bringing online for cluster $clu" -ForegroundColor Green $c = Get-Cluster -name $clu | Get-ClusterResource | where { $_.Name -and $_.state -eq "offline"} $count = $c.Length write-host "Current Count: $count" -ForegroundColor Green if ($count -eq 0){ break }else{ echo […]
我有一个域上运行一个“powershell.exe”进程作为系统的几台机器,并从服务器砸裤子。 他们都是100%的CPU,自然而然地停下来。 这是HyperV虚拟机上的Windows Server 2012 R2。 杀死这个过程可以解决这个问题一段时间,但之后CPU再次摧毁了天花板,一切都停滞不前。 这个PowerShell程序也运行在底层的hypervisor上,导致进一步的问题。 有什么想法吗?
了解了如何脚本安装.msu更新。 $filename = "C:\temp\log\WUInstall_" + $timer + ".evtx" Start-Process -FilePath wusa -ArgumentList "\\fs1\software\WS2012R2\windows8.1-kb4041693-x64_31e473824b705bf05f3befc423d39fa0c6d0fb49.msu /quiet /norestart /log:$filename" -Wait 在Powershell中使用wusa是因为这是避免更新后机器重新启动的唯一方法 – 因为我需要等待这个完成并运行更多的命令,然后再发出手动重新启动( /norestart需要/quiet ) 。 无法将安装结果logging为纯文本格式,仅限于.evtx 。 我们只是说已经安装了更新(可能是一个已经打过补丁的操作系统映像,不能控制这个),我运行脚本。 它只是运行,没有错误。 在没有/quiet /norestart情况下执行时,最终会打印出“<..>已经安装在这台电脑上”。 此外,在.evtx日志中还有几行显示安装过程的状态,包括“InstallWorker.01090:更新已安装”。 但我不知道如何parsing这个日志。 我只能parsing一个纯文本日志。 有没有办法parsing.evtx日志? 所以我可以把一些逻辑在我的脚本来检查状态(更新安装好或不),并决定一个行动? (移动到脚本中的下一步或退出时出错) 或者更好的解决scheme来解决这个在Powershell 5.1? 应该能够将其应用于WS 2012至2016年。