几周前,我们有一个 Windows XP 机箱连接到映射到驱动器的 AS/400 网络共享P://
。批处理文件可以通过 400 的远程调用命令运行。批处理文件使用用户密码 none / none 调用。
我们不得不突然将 Windows XP 系统从网络上移除,没有任何计划,也没有能力在将其离线之前获得一套替代品。
收到 Windows 10 盒子。由于 AS/400 不在域中,我必须P://
使用 ./user 和密码映射驱动器。一切正常,我们可以完全控制文件夹和文件,读取、写入、删除。
驱动器P://
是 AS/400 转储 HTML 文件以转换为 PDF 然后进行假脱机的地方 - 使用命令行调用 Qindows 程序。获得在 XP 框上运行的一切 - 但现在突然之间,Windows 10 框似乎没有对该驱动器的权限P://
。
通过 AD 登录的用户是该机器的管理员。
我尝试通过 PowerShell 创建 ps-drive。它说执行策略限制操作的完成。尝试使用凭据登录 ps-drive,但我无法获得对域执行 ./ 的提示。
标准批处理文件 - 手动运行可以通过驱动器号访问共享,但是当我尝试通过计划任务运行批处理文件时,它无法运行,似乎它突然无法访问驱动器。
我已经创建了一个系统链接 - 但似乎无法让 PowerShell 调用该系统链接。
基本上,我需要做的是在创建 HTML 之后,以自动化方式启动批处理文件以转换为 PDF 并打印。
我一直不明白 PowerShell 和驱动器以及任务调度程序和驱动器之间的安全角色问题。
答案1
至于这个...
“它表示执行策略限制了该操作的完成。”
... 表示您的组织正在阻止 PS 使用。如果这不是脚本操作,您应该能够使用任何 cmdlet 交互。您可以使用 cmdlet 检查执行策略...
Get-ExecutionPolicy
您可以使用 cmdlet 设置执行策略(如果它们没有阻止您更改它)。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
详情请见此处:
# get function / cmdlet details
(Get-Command -Name Get-ExecutionPolicy).Parameters
Get-help -Name Get-ExecutionPolicy -Examples
Get-help -Name Get-ExecutionPolicy -Full
Get-help -Name Get-ExecutionPolicy -Online
# get function / cmdlet details
(Get-Command -Name Set-ExecutionPolicy).Parameters
Get-help -Name Set-ExecutionPolicy -Examples
Get-help -Name Set-ExecutionPolicy -Full
Get-help -Name Set-ExecutionPolicy -Online
至于这个
“我无法获取对域名采用 ./ 的提示。”
不,您不能,您必须使用 FQDN(服务器名称\共享名称)访问共享。您不需要域。如果您可以 ping 盒子/映射到共享,那么 New-PSDrive 应该可以工作。但是,如果他们阻止 PS 用例,那么这一切都没有意义。
# get function / cmdlet details
(Get-Command -Name New-PSDrive).Parameters
Get-help -Name New-PSDrive -Examples
Get-help -Name New-PSDrive -Full
Get-help -Name New-PSDrive -Online
如果您说的是,这意味着您的本地域名,您只需这样做即可。
# User short domain name
$env:USERDOMAIN
# Use FQDN
$env:USERDNSDOMAIN
至于这个...
“标准批处理文件 - 手动运行可以通过驱动器号访问共享,但是当我尝试通过计划任务运行批处理文件时,它无法运行,似乎它突然无法访问驱动器。”
您需要确保用于任务的凭据对于用例有效。
除了少数 PS cmdlet 之外,如果您使用 PSRemoting 接触远程机器,您必须是目标上的管理员,这意味着登录到源主机,并且也是目标主机上的管理员,或者以其他用户身份登录并传递正确的管理员凭证到目标。
如果您说,您正在从源到目的地运行计划任务,那么相同的规则适用。
如果您说,您在目标上创建了一个计划任务,那么,这只是使用该主机上所需的任何适当凭证。
但是,如果他们全面阻止 PS 或者只是阻止运行脚本的能力,那么这是一个完全不同的问题。
执行策略不是安全边界,微软也从未说过它是。它只是一种防止人们自食恶果的方法。除非他们付出了巨大的努力来阻止 PS 的使用,否则可以绕过执行策略。网络上有很多关于这个主题的文章。
这就是它们的基调的例子。
https://blog.netspi.com/15-ways-to-bypass-the-powershell-execution-policy
只需知道,如果他们启用了对 PS 尝试用例的审核,并且他们已经阻止了这些用例,而您这样做,则可能会对您采取不利行动。您知道,那些个人 RPE(恢复生成事件)