[英]Running SFC.EXE from within Powershell script deployed via SCCM
[英]Powershell Deployed via SCCM Issue
我正在编写一个Powershell脚本,由SCCM通过一个程序包部署。 这样做的目的是删除具有特定名称的帐户,然后将其写入文件以说明该帐户是否存在。 代码如下:
$Computer = hostname
foreach ($C in $Computer) {
if (Test-Connection $C -Quiet) {
Write-Verbose "$C > Online"
$Users = Get-WMIObject Win32_UserAccount -Filter "LocalAccount=True" -ComputerName $C
if ($Users.Name -contains 'test') {
Add-Content \\SERVERNAME\SHARENAME.$\$computer-found_$(get-date -Format yyyymmdd_hhmmtt).txt "User 'test' found, Disable 'test' found"
net user test /active:no }
else {
Add-Content \\SERVERNAME\SHARENAME.$\$computer-notfound_$(get-date -Format yyyymmdd_hhmmtt).txt "User 'test' not found"
}
}
else {
Write-Verbose "$C > Offline"
}
}
我也尝试用Write-Host
替换Write-Verbose
,用Out-File
替换Add-Content
,但是我遇到的问题是,当我使用完整的网络路径或共享时,没有创建任何内容/文件,例如\\\\SERVERNAME\\SHARENAME.$
所标识的路径具有所有正确的权限,并且正在使用系统帐户在本地运行。
我想看看是否在本地写入文件时发生此问题,因此在写入C:\\Temp\\
时不会发生
有谁有任何想法来解决这个问题。
我可能对此不满意,因为我的回答从技术上讲并不是直接回答您的问题,但是,它的目的是尝试向您指出可能更合乎逻辑的方向。 如果我冒犯了所有人,我们深表歉意,但这是:
为什么不只使用组策略禁用用户? 如果您真的想知道在/未禁用用户的位置,则可以为此使用硬件清单,但是GP确实是实施这种设置的最佳方法。
我认为本地系统帐户无法访问网络资源。 我不确定您是否配置过它。 以及您用来运行该命令的命令
在我的实验室进行测试之后,我在这里发布了使用Configuration Manager部署执行此操作的一种工作方式。
基本上我用源文件创建了一个包
并通过“运行命令行”步骤创建了一个任务序列。
我使用任务序列的原因是因为我想使用一个帐户来访问网络上的txt文件,可以在任务序列中对其进行配置。 我认为本地系统帐户没有这样的许可。
我使用的脚本(DeactivateTest.ps1)如下所示,就像您提供的内容和逻辑上的更改一样:
$Computer = hostname
foreach ($C in $Computer) {
if (Test-Connection $C -Quiet) {
Write-host "$C > Online"
$Users = Get-WMIObject Win32_UserAccount -Filter "LocalAccount=True" -ComputerName $C
$result=0
Foreach($user in $Users){
if ($User.Name -like '*test*') {
$username = $user.Name
"`n$(get-date -Format yyyymmdd_hhmmtt) User $username found ON $C, Disable 'test'" | Add-Content \\cas\resource\Result.txt
net user $username /active:no
$result+=1
}}
if($result =0){
"`n$(get-date -Format yyyymmdd_hhmmtt) User 'test' not found ON $C" | Add-Content \\cas\resource\Result.txt}
}
else {
"`n$C is Offline" | Add-Content \\cas\resource\Result.txt
}
}
任务序列中的命令是(这是一台x64计算机):
PowerShell.exe -ExecutionPolicy绕过-文件“。\\ DeactiveTest.ps1”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.