我正在尝试编写一个程序来遍历我的所有远程计算机网络驱动器,并定义它们是否已经很好地映射。如果它们不是,它将映射它们,如果它没有成功,它将打印我的机器主机名的日志。
出于某种原因,我一直坚持创建这个功能:
if ($state.current.name == "view3") {
var backView = $ionicHistory.backView();
backView.stateParams = {param1:true};
backView.stateId = backView.stateName + "_param1=true";
$ionicHistory.goBack(); // moves to view2
} else {
$ionicHistory.goBack();
}
有人可以帮忙吗? 十分感谢, 塞巴斯蒂安。
答案 0 :(得分:0)
Invoke-Command -ComputerName localhost -ScriptBlock ${function:checkMapped}
但我认为这样做是行不通的,因为你打开自己的会话来做这件事,没有映射驱动器(只在我自己的系统上检查过)。
另外我认为网络驱动器与登录用户相关。
请改为尝试:
function Check-MappedDrive ($computerName) {
$driveLetter = "M:"
$path = "\\xxx\xxxx"
Get-WmiObject -Class Win32_MappedLogicalDisk -ComputerName $computerName |
Where-Object { $_.Name -eq $driveLetter } |
ForEach-Object {
if($_.ProviderName -eq $path) {
"$driveLetter is mapped to $path on $computerName"
}
}
}
foreach($computerName in "localhost", "127.0.0.1") {
Check-MappedDrive $computerName
}
不知道您之后是否能够映射驱动器:您必须模拟登录用户才能这样做。
但您可以将批处理文件放在用户桌面或启动文件夹中以映射驱动器,或创建计划任务。
答案 1 :(得分:0)
这可以为你提供名称和路径。
foreach($CompName in $Complist)
{
get-wmiobject win32_mappedlogicaldisk -computername %CompName | select name,providername
}