$logonhourse = Invoke-Command -ScriptBlock {$lastday = ((Get-Date).AddDays(-1)).Date
Get-ADUser -Filter {whenCreated -ge $lastday} -property whencreated | sort name | Select-Object -ExpandProperty sAMAccountName}
foreach ($userprincipal in $logonhourse){
Get-ADUser -Identity $userprincipal |
Set-ADUser -Replace @{UserPrincipalName = $userprincipal + '@' + $env:USERDNSDOMAIN}
}
#Вход в систему с 7 до 23
foreach ($userlogontime in $logonhourse){
[byte[]]$hours = @(240,255,15,240,255,15,240,255,15,240,255,15,240,255,15,240,255,15,240,255,15)
Get-ADUser -Identity $userlogontime |
Set-ADUser -Replace @{logonhours = $hours}
}
$SSHstream.WriteLine('yes')
пробовал, всю равно запрашивает подтверждение."echo y | shutdownsys halt"
не отрабатывает. Падает в ошибку "Исключение при вызове "CreateShellStream" с "6" аргументами: "Client not connected."
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Posh-SSH\Posh-SSH.psm1:692 знак:9
+ $stream = $ToProcess.Session.CreateShellStream($TerminalName, ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SshConnectionException
Add-Member : Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Posh-SSH\Posh-SSH.psm1:693 знак:33
+ Add-Member -InputObject $stream -MemberType NoteProperty -Nam ...
+ ~~~~~~~
+ CategoryInfo : InvalidData: (:) [Add-Member], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.AddMemberCommand
Add-Member : Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Posh-SSH\Posh-SSH.psm1:694 знак:33
+ Add-Member -InputObject $stream -MemberType NoteProperty -Nam ...
+ ~~~~~~~
+ CategoryInfo : InvalidData: (:) [Add-Member], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.AddMemberCommand
Невозможно вызвать метод для выражения со значением NULL.
строка:2 знак:1
+ $SSHstream.WriteLine("echo y | shutdownsys halt")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Невозможно вызвать метод для выражения со значением NULL.
строка:4 знак:1
+ $sshStream.read()
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull"
invoke-sshcommand -index 0 -command "shutdown"
и все!$1 = invoke-command -session $vm -scriptblock {get-vm -name test-vm | select-object -expandProperty state} | format-table}
выводит статус, но как через цикл вывести статус vm? Если к примеру Вм завершает работу около 6 минут $winVMCluster = Invoke-Command -ComputerName cluster-win -ScriptBlock {Get-ClusterGroup | where -Property name -Like "test-vm" | Select-Object -ExpandProperty OwnerNode | Select-Object -ExpandProperty name}
if (Test-WSMan -ComputerName $winVMCluster -Authentication Default -ErrorAction Stop) {
if ($winVMconnection = New-PSSession -ComputerName $winVMCluster){
Write-Host "Успешное подключение к $winVMCluster" -ForegroundColor Black -BackgroundColor Green
}
}
$runningVMNode = Invoke-Command -Session $winVMconnection -ScriptBlock {Stop-VM -Name test-vm -Force}
$RS = Enter-PSSession -ComputerName $vmhost
Invoke-Command -Session $RS -ScriptBlock {Stop-VM -Name * -Force}
Start-Sleep -Seconds 300
Enter-PSSession
на New-PSSession
работает, но выключает ВМ даже с пользователями сразу.Enable-PSRemoting
выполняются на хосте без ошибок. Enter-pssession -computername win7
Сбой подключения к удаленному серверу win7. Сообщение об ошибке: Службе WS-Management не удается обработать запрос. Не удается найти конфигурацию сеанса Microsoft.PowerShell в WSMan: диск в компьютере win7. Дополнительные сведения см. в разделе справки, "about_Remote_Troubleshooting".