0
リモートサーバーのレジストリ設定(WSUSサーバー名)を変更するスクリプトを作成しようとしています。成功したスクリプトは、サーバーにパッチをインストールするリモートサーバーに格納されたexeファイルとVBScriptファイルを実行する必要があります。以下は私の進歩です。VBScriptでレジストリエディットスクリプトとexe実行を統合する方法
- サーバーのWSUS設定を変更します。これでリモートサーバー上のレジストリでWSUSサーバーを変更し、結果をCSVファイルで取得できるようになりました。
- 上記の手順が成功すると、私の下のスクリプトはリモートサーバ上で上記のコマンドを実行できるはずですが、これは現在起こっていません。
スクリプト:
#defined variables to use in script as below.##
$Computers = Get-Content "C:\serverlist.txt"
$Path = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
$property = "WUServer"
$value = "http://serverFQDN"
$results = foreach ($computer in $Computers) {
if (Test-Connection -ComputerName $computer -Count 1 -Quiet) {
try {
Set-ItemProperty -Path $path -Name $Property -Value $Value -ErrorAction 'Stop'
$status = "WSUS server has been set to http://serverFQDN"
foreach ($computer in $Computers) {
# below step is not getting executed on remote servers. I do not
# get any error but above script do not execute any command on
# remote servers.
foreach ($computer in $computers) {
Invoke-Command -ScriptBlock {
C:\test\Patcher > cscript.exe -nologo test_v1.03.vbs /anlyze:false /reboot:false | Out-Null
}
}
}
} catch {
$status = "Failed"
}
} else {
$status = "Server is not reachable, please check connection and try again"
}
New-Object -TypeName PSObject -Property @{
'Computer' = $computer
'Status' = $status
}
}
$results | Export-Csv -NoTypeInformation -Path "./out.csv"
を、これが支援してきましたが、コマンドは、私は、このスクリプトを実行するために使用していますローカルサーバー上でのみ実行を取得、それはserverlist.txtに言及した他のサーバに行きません –
@VinitSリモートコンピュータ上でコマンドを呼び出すには、リモートコンピュータ上で実際にコマンドを呼び出す必要があります。 'Invoke-Command -Computer $ computer -ScriptBlock {...}' –