我有以下脚本在远程计算机上运行一些基本命令并将输出记录到共享。我在共享上获得访问被拒绝的例外,即使该共享拥有包括我执行脚本在内的所有人的完全控制访问权限,
脚本:
invoke-command -session $s -ScriptBlock {
param($log)
cd 'c:\temp' | out-file $log -NoClobber
cmd /c 'dir' | out-file $log -NoClobber
} -argumentList '\\share_location\log_file_path.log'
fyi,在上面的脚本中,会话$ s是使用我的凭据生成的。
异常:
Access to the path '\\share_location\log_file_path.log' is denied.
+ CategoryInfo : OpenError: (:) [Out-File], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
有人可以建议我在这里失踪吗?
答案 0 :(得分:0)
在主机和远程计算机上
Set-Service winrm -StartupType Automatic
Start-Service winrm
在主机和远程计算机上
EnablePSRemoting -Force
在远程计算机上
Set-Item wsman:\localhost\Client\TrustedHosts -Value "$(hostname),*$((Get-WmiObject Win32_ComputerSystem).Domain)"
确定允许Creds通过的主机
Enable-WSManCredSSP –Role Client –DelegateComputer "$(hostname),*$((Get-WmiObject Win32_ComputerSystem).Domain)"
在源计算机上。
Enable-WSManCredSSP –Role Server
在主机上
$Cred = [System.Management.Automation.PSCredential]::new("<username>",$("<Password>" | ConvertTo-SecureString -AsPlainText -Force))
invoke-command -ComputerName localhost -ScriptBlock {Write-Host $args[0]} -ArgumentList "Hello!, It Works" -Authentication Credssp -Credential $cred