运行 来自不同服务器的 Powershell 命令
Run Powershell command from different server
我有以下 powershell 命令,它根据 .log 文件的内容读取并提供我的 .bat 脚本的状态:
Get-ChildItem *.log | ForEach-Object {
[pscustomobject] @{
Name = $_.Name
Status =
('FAILED', 'SUCCESS')[(Select-String -Quiet 'Finished with NO errors' $_.FullName)]
}
}
这个命令 运行s 完美,当 运行ning 在与存储 .log 文件的服务器 (ServerA) 相同的服务器上时,但是当 运行ning 在外部时它 - 没有返回任何值。
有没有办法从同一网络中的另一台服务器 运行 获取它?
- 服务器:服务器A
- 目录:c:\Temp\
作为实施@AdminOfThings 建议的示例,附有一些评论:
$servers = "server1", "server2"
ForEach ($server in $servers){
Invoke-Command -ComputerName $server -ScriptBlock {
Get-ChildItem c:\temp\*.log | ForEach-Object {
[pscustomobject] @{
Name = $($env:COMPUTERNAME)
Status = ('FAILED', 'SUCCESS')[(Select-String -Quiet 'Finished with NO errors' $_.FullName)]
}
}#EndOfForEachLogFile
}#EndOf Invoke-Command
}#EndOf ForEach
我有以下 powershell 命令,它根据 .log 文件的内容读取并提供我的 .bat 脚本的状态:
Get-ChildItem *.log | ForEach-Object {
[pscustomobject] @{
Name = $_.Name
Status =
('FAILED', 'SUCCESS')[(Select-String -Quiet 'Finished with NO errors' $_.FullName)]
}
}
这个命令 运行s 完美,当 运行ning 在与存储 .log 文件的服务器 (ServerA) 相同的服务器上时,但是当 运行ning 在外部时它 - 没有返回任何值。 有没有办法从同一网络中的另一台服务器 运行 获取它?
- 服务器:服务器A
- 目录:c:\Temp\
作为实施@AdminOfThings 建议的示例,附有一些评论:
$servers = "server1", "server2"
ForEach ($server in $servers){
Invoke-Command -ComputerName $server -ScriptBlock {
Get-ChildItem c:\temp\*.log | ForEach-Object {
[pscustomobject] @{
Name = $($env:COMPUTERNAME)
Status = ('FAILED', 'SUCCESS')[(Select-String -Quiet 'Finished with NO errors' $_.FullName)]
}
}#EndOfForEachLogFile
}#EndOf Invoke-Command
}#EndOf ForEach