0
我一直在潛藏着多年從本網站獲取代碼的答案,但這是我第一次實際提出問題。我實際上沒有爲代碼付款,而是使用腳本來簡化日常任務。Powershell通過帶有憑證的服務器列表進行遍歷
我一直在使用PowerShell腳本用下面的代碼(即我幾乎從本網站收集),收集客戶端服務器上的磁盤使用情況:
$dataColl = @()#Makes an array, or a collection to hold all the object of the same fields
foreach ($serverName in (get-content c:\reporting\Disk_useage\My_servers.txt))
{
$path = 「\\$serverName\d$\folder1\TargetSubdir「
$dirSize = Get-ChildItem $path -recurse -force | select Length |Measure-Object -Sum length
$dirSize.sum = $dirSize.sum/1MB
$finalResult = 「{0:N2} MB」 -f $dirsize.sum
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name 「ServerName」 -value $serverName
Add-Member -inputObject $dataObject -memberType NoteProperty -name 「Dir_Size」 -value $finalResult
$dataColl += $dataObject
$dataObject
}
$dataColl | Export-Csv -noTypeInformation -path c:\reporting\Disk_useage\Svr_disk.csv
這一直工作正常,但現在我們有客戶端服務器的第二個域,所以我需要爲第二個域中的服務器添加憑據。我一直在研究如何傳遞下去憑證,並得到了這段代碼(PW已經被存儲在.TXT文件):
$username = "MyDomain\MyAccount"
$password = cat C:\reporting\securestring.txt | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist $username, $password
但我應該添加這些參數地方實際使用已設置的憑據:
-Authentication default -Credential $Cred
我已經在幾個不同的地方嘗試過它沒有成功。僅供參考,My_servers.txt中的列表中有一堆服務器,我不需要證書(因爲它們位於當前域),還有一些我需要證書的服務器(因爲它們在另一個域中) 。但是我爲腳本使用的憑據是兩個域中存在相同ID/PW的服務帳戶。任何幫助整理這將不勝感激。
你有WinRM的配置,您可以使用調用命令{d:\文件夾1 \ targetsubdir} -credential $ yourcredentials等以不同的方式處理呢?如果沒有,你可以嘗試映射驅動器? –
我不明白我會如何納入。正如我所說,我不是貿易的編碼員,所以我需要更具體的建議。 –